package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiSubsidyApplicationFile;
import com.minimalist.common.entity.lindi.vo.subsidyapplicationfile.LindiSubsidyApplicationFileQueryVO;
import com.minimalist.common.entity.lindi.vo.subsidyapplicationfile.LindiSubsidyApplicationFileVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标交易平台_补贴申请文件表 服务层。
 *
 * @author 11987
 * @since 2025-06-09
 */
public interface LindiSubsidyApplicationFileService extends IService<
        LindiSubsidyApplicationFile>{

    /**
     * 添加补贴申请文件
     *
     * @param subsidyApplicationFileVO 补贴申请文件VO
     */
    void addSubsidyApplicationFile(LindiSubsidyApplicationFileVO subsidyApplicationFileVO);

    /**
     * 根据补贴申请文件ID删除补贴申请文件
     *
     * @param subsidyApplicationFileId 补贴申请文件ID
     */
    void deleteSubsidyApplicationFileBySubsidyApplicationFileId(Long subsidyApplicationFileId);

    /**
     * 根据补贴申请文件ID更新补贴申请文件
     *
     * @param subsidyApplicationFileVO 补贴申请文件VO
     */
    void updateSubsidyApplicationFileBySubsidyApplicationFileId(
            LindiSubsidyApplicationFileVO subsidyApplicationFileVO);

    /**
     * 分页查询补贴申请文件列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiSubsidyApplicationFileVO> getPageSubsidyApplicationFileList(
            LindiSubsidyApplicationFileQueryVO queryVO);

    /**
     * 根据补贴申请文件ID查询补贴申请文件
     *
     * @param subsidyApplicationFileId 补贴申请文件ID
     * @return 补贴申请文件VO
     */
    LindiSubsidyApplicationFileVO getSubsidyApplicationFileBySubsidyApplicationFileId(Long subsidyApplicationFileId);

    /**
     * 根据补贴申请ID查询文件列表
     *
     * @param subsidyApplicationId 补贴申请ID
     * @return 文件列表
     */
    PageResp<LindiSubsidyApplicationFileVO> getSubsidyApplicationFileListBySubsidyApplicationId(Long subsidyApplicationId);
}